package com.cloudfun.campusshare.common.model.dto.kjt;

import com.cloudfun.campusshare.common.constant.ShopType;
import com.kjtpay.gateway.common.enums.SubMerchantType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;

/**
 * Created by Huqin on 2020/8/10
 */
@Data
@ApiModel("快捷通子商户资料重提DTO")
public class KjtSubMerchantResubmissionDTO {

    @ApiModelProperty("子商户类型")
    @NotNull(message = "子商户类型不能为空")
    private SubMerchantType customerType;

    @ApiModelProperty("企业、个体工商户法人/个人商家身份证有效期")
    private LocalDate certificatesValidity;

    @ApiModelProperty("商户店面类型")
    @NotNull(message = "商户店面类型不能为空")
    private ShopType shopType;

    @ApiModelProperty("身份证正面")
    @NotEmpty(message = "身份证正面不能为空")
    @Length(min = 1, max = 40, message = "身份证正面限制1-40个字符")
    private String certificatesFrontId;

    @ApiModelProperty("身份证反面")
    @NotEmpty(message = "身份证反面不能为空")
    @Length(min = 1, max = 40, message = "身份证反面限制1-40个字符")
    private String certificatesBackId;

    @ApiModelProperty("网店完整的域名截图照片")
    @Length(min = 1, max = 40, message = "网店完整的域名截图照片限制1-40个字符")
    private String networkUrlPhotoId;

    @ApiModelProperty("商户经营场所照片，至少三张")
    private List<String> storeIds;

    @ApiModelProperty("商户经营场所租赁合同或办公场所产权证明照片")
    private List<String> businessLeaseContractIds;

    @ApiModelProperty("营业执照影印件")
    @NotEmpty(message = "营业执照影印件不能为空")
    @Length(min = 1, max = 40, message = "营业执照影印件限制1-40个字符")
    private String licenseId;

    @ApiModelProperty("开户许可证影印件")
    @NotEmpty(message = "开户许可证影印件不能为空")
    @Length(min = 1, max = 40, message = "开户许可证影印件限制1-40个字符")
    private String openLicenseId;

    @ApiModelProperty("组织机构代码证影印件")
    @Length(min = 1, max = 40, message = "组织机构代码证影印件限制1-40个字符")
    private String organizationNumberId;

    @ApiModelProperty("税务登记影印件")
    @Length(min = 1, max = 40, message = "税务登记影印件限制1-40个字符")
    private String taxId;

    @ApiModelProperty("商户名称")
    @NotEmpty(message = "商户名称不能为空")
    @Length(min = 1, max = 100, message = "商户名称限制1-100个字符")
    private String companyName;

    @ApiModelProperty("营业执照号")
    @NotEmpty(message = "营业执照号不能为空")
    @Length(min = 1, max = 30, message = "营业执照号限制1-30个字符")
    private String businessLicenseNo;

    @ApiModelProperty("营业执照有效期")
    private LocalDate businessLicenseValidity;

    @ApiModelProperty("是否三证合一")
    @NotNull(message = "是否三证合一不能为空")
    private Boolean threeCertFlag;

    @ApiModelProperty("组织机构代码证号")
    @Length(min = 1, max = 30, message = "组织机构代码证号限制1-30个字符")
    private String organizationCode;

    @ApiModelProperty("税务登记证号")
    @Length(min = 1, max = 30, message = "税务登记证号限制1-30个字符")
    private String taxRegistryNo;
}
